package com.ratta.supernote.note.plugincore.api;

/**
 * Interface for operating note main program UI
 */
public abstract class NoteHostUIAPI {


    /**
     * Sidebar callback
     */
    public interface SideBarCallback {
        /**
         * Close sidebar dialog
         */
        void onCloseSideDialog();
    }

    private static NoteHostUIAPI instance;

    public static NoteHostUIAPI getInstance() {
        return instance;
    }

    public NoteHostUIAPI() {
    }

    /// Need to initialize by calling init in Application
    public static void init(NoteHostUIAPI noteHostUIAPI) {
        instance = noteHostUIAPI;
    }

    public abstract void addSideBarCallback(SideBarCallback callback);

    /**
     * Close sidebar dialog data
     */
    public abstract void closeSideDialog();
}
